home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / cd_mci.exe / MCI.H < prev   
C/C++ Source or Header  |  1993-01-07  |  2KB  |  78 lines

  1. /*
  2.     MCI.H
  3.  
  4.     Klasse fⁿr die Ansteuerung des MCI Interfaces.
  5.  
  6.     22.08.92 Norbert Unterberg
  7.  
  8. */
  9.  
  10.  
  11. #ifndef _MCI_H
  12. #define _MCI_H
  13.  
  14. class MCI {
  15.    UINT wDeviceID;
  16.    DWORD dwCallback;
  17.    LPSTR szAlias;
  18.  
  19. protected:
  20.    DWORD mciCommand(UINT wMessage, DWORD dwFlags, const void *param)
  21.      { return mciSendCommand(wDeviceID, wMessage, dwFlags, (DWORD)(LPVOID)param); }
  22.    virtual MCI_OPEN_PARMS *GetOpenParams();
  23.    virtual void DeleteOpenParams(MCI_OPEN_PARMS *mci) { delete mci; }
  24.    virtual DWORD GetOpenFlags(MCI_OPEN_PARMS *mci);
  25.    virtual MCI_GENERIC_PARMS *GetGenericParams();
  26.    DWORD GetStatus(DWORD dwItem, DWORD dwTrack = 0);
  27.    DWORD Set(DWORD dwItem, DWORD dwValue = 0);
  28.  
  29. public:
  30.    DWORD Open(char *alias, DWORD dwFlags = 0);
  31.    DWORD Close(DWORD dwFlags = 0);
  32.    DWORD Play(DWORD dwFlags = 0, DWORD from = 0, DWORD to = 0);
  33.    DWORD Seek(DWORD dwFlags, DWORD to);
  34.    DWORD Stop(DWORD dwFlags = 0);
  35.  
  36.    UINT CurrentTrack()
  37.          { return GetStatus(MCI_STATUS_CURRENT_TRACK); }
  38.    DWORD Position(UINT track = 0)
  39.          { return GetStatus(MCI_STATUS_POSITION, track); }
  40.    DWORD Length(UINT track = 0)
  41.          { return GetStatus(MCI_STATUS_LENGTH, track); }
  42.    DWORD Mode()
  43.          { return GetStatus(MCI_STATUS_MODE); }
  44.    DWORD NumberOfTracks()
  45.          { return GetStatus(MCI_STATUS_NUMBER_OF_TRACKS); }
  46.    DWORD TimeFormat()
  47.          { return GetStatus(MCI_STATUS_TIME_FORMAT); }
  48.    DWORD StartPosition()
  49.          { return GetStatus(MCI_STATUS_START); }
  50.    DWORD Ready()
  51.          { return GetStatus(MCI_STATUS_READY); }
  52.  
  53.    DWORD SetTimeFormat(DWORD tf)
  54.          { return Set(MCI_SET_TIME_FORMAT, tf); }
  55.    DWORD OpenDoor()
  56.          { return Set(MCI_SET_DOOR_OPEN); }
  57.    DWORD CloseDoor()
  58.          { return Set(MCI_SET_DOOR_CLOSED); }
  59.  
  60.    MCI(HWND hwnd); 
  61.    //virtual ~MCI();
  62. };
  63.  
  64.  
  65. class CDAudio : public MCI {
  66. protected:
  67.    virtual MCI_OPEN_PARMS *GetOpenParams();
  68.    virtual DWORD GetOpenFlags(MCI_OPEN_PARMS *mci);
  69. public:
  70.    CDAudio(HWND hwnd) : MCI(hwnd) {}
  71.    BOOL MediaPresent()
  72.         { return (BOOL)GetStatus(MCI_STATUS_MEDIA_PRESENT); }
  73.  
  74. };
  75.  
  76.  
  77. #endif
  78.